package cn.edu.tju.se.auth.controller;

import cn.edu.tju.se.auth.service.GoodsService;
import cn.edu.tju.se.auth.service.StoreService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.List;

@RestController
@RequestMapping(value = "search")
public class SearchController {

    @Autowired
    private GoodsService goodsService;

    @Autowired
    private StoreService storeService;

    /*
    * 由于搜索是需要得到数据的
    * 因此我们将数据用json的方式发送过来
    * 下面的例子是将店铺和商品的搜索结果整合在一起的
    * 下面的例子是搜索全部的商品和店铺
    */
    @GetMapping(path = "searchResult")
    public List<List> SearchData(){
        //创建一个用来返回结果的List，它存储数据的类型是List
        List<List> result = new ArrayList<>();

        //创建开头文字
        List<String> goodsStart = new ArrayList<>();
        goodsStart.add("商品结果");
        result.add(goodsStart);

        //显示商品
        result.add(goodsService.getAllGoods());

        //创建中间文字
        List<String> storeStart = new ArrayList<>();
        storeStart.add("店铺结果");
        result.add(storeStart);

        //显示店铺
        result.add(storeService.getAllStores());

        //创建结束文字
        List<String> resultEnd = new ArrayList<>();
        resultEnd.add("以下没有更多的结果了");
        result.add(resultEnd);

        //返回结果
        return result;
    }

    /*
    * 下面的例子是按照搜索的字符串进行搜索
    * 分别列出店铺和商品
     */
    @GetMapping(path = "searchResultData")
    public List<List> SearchResultData(String searchData){
        //创建一个用来返回结果的List，它存储数据的类型是List
        List<List> result = new ArrayList<>();

        //创建开头文字
        List<String> goodsStart = new ArrayList<>();
        goodsStart.add("商品结果");
        result.add(goodsStart);

        //显示商品
        result.add(goodsService.getGoods(searchData));

        //创建中间文字
        List<String> storeStart = new ArrayList<>();
        storeStart.add("店铺结果");
        result.add(storeStart);

        //显示店铺
        result.add(storeService.getStores(searchData));

        //创建结束文字
        List<String> resultEnd = new ArrayList<>();
        resultEnd.add("以下没有更多的结果了");
        result.add(resultEnd);

        //返回结果
        return result;
    }


}
